// 编写一个程序，打开一个文本文件，读取其中内容，将其复制到一个新建文件中
#include <iostream>
#include <fcntl.h>  // open
#include <unistd.h> // read, write, close
#include <cstring>  // memset
#include <sys/types.h>
#include <sys/stat.h>

using namespace std;

int main()
{
    const char *srcFile = "./src.txt";    // 源文件名
    const char *dstFile = "./dst.txt"; // 目标文件名

    // 打开源文件以读取
    int src = open(srcFile, O_RDONLY);
    if (src < 0)
    {
        perror("src file open error");
        exit(-1);
    }

    // 创建目标文件以写入
    int dst = open(dstFile, O_WRONLY | O_CREAT, 0644);
    if (dst < 0)
    {
        perror("dst file open error");
        exit(-1);
    }

    char buffer[256];  // 缓冲区
    size_t readBytes; // 实际读取的字节数

    // 逐块读取源文件内容并写入目标文件
    readBytes = read(src, buffer, sizeof(buffer));
    while (readBytes > 0)
    {
        write(dst, buffer, readBytes);
    }

    // 关闭文件
    close(src);
    close(dst);

    return 0;
}